Datentypen:
 * string
  - "Hello World!"
  - Bytes!
   - Keine reservierten Zeichen, nicht mal NUL
   - UTF8, UTF16, Endianness, ... -> I don't care!
   - Interpreter akzeptiert UTF8
   - String-Länge ist immer noch nur Byte-Länge!
    - Library für UTF8-Zeichenmenge(Und weitere UTF8-Dinge)
  - "Immutable": Bei jeder Änderung wird ein neuer String erzeugt (langsam)
  - Funktionen in String-Tabelle: byte, char, dump, find, format, gmatch, gsub, len, lower, match, rep, reverse, sub, upper
  - Alle Funktionen der string-Tabelle sind in Strings verfügbar
  - einfache(') oder doppelte (") Anführungszeichen
  - \a  bell
    \b  back space
    \f  form feed
    \n  newline
    \r  carriage return
    \t  horizontal tab
    \v  vertical tab
    \\  backslash
    \"  double quote
    \'  single quote
    \[  left square bracket
    \]  right square bracket
 * number
  - 4,  0.4,  4.57e-3,  0.3e12,  5e+20
  - Real (Kann beimKompilieren geändert werden)
  - Keine Integer bis Lua 5.3
  - math functions: abs, acos, asin, atan, atan2, ceil, cos, cosh, deg, exp, floor, fmod, frexp, huge, ldexp, log, log10, max, min, modf, pi, pow$
   - Was man halt erwartet, min/max und einige andere sind vararg funktionen
 * tables
  - Assoziatives Array
  - Keine Festgelegte Größe!
  - Grundstruktur: { [index] = wert }
  - Alles außer nil kann sowohl index als auch Wert sein
  - Als Liste: { "foo", "bar", "buzz" } --> { [1]="foo", [2]="bar", [3]="buzz" }
  - Sowohl index aus auch wert sind referenzen auf die Werte; Updates somit ziemlich schnell
  - Iteratoren machen das arbeiten mit tabellen in schleifen einfach!
   - Iteratoren sind Funktionen, und können für alles mögliche verwendet werden(Beispiel: Iteration über datenbankeinträge)
  - Mit metatables kann man festlegen was bei aktionen mit Tabellen passiert.
   - macht Inherance möglich
   - z.B. festlegen was passiert, wenn man einen Wert aus einer tabelle holt, oder einspeist
 * function
 * coroutines
 * userdata
